﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyQuanCafe.BusinessLogic;
using QuanLyQuanCafe.BusinessObject;

namespace QuanLyQuanCafe
{
    public partial class FrmKhuVuc : Form
    {
        private KhuVucBL khuvucBL = new KhuVucBL();
        private BanBL banBL = new BanBL();
        public FrmKhuVuc()
        {
            InitializeComponent();
            cbLoaiKV.Items.Add("1");
            cbLoaiKV.Items.Add("2");
            cbLoaiKV.SelectedIndex = 0;
        }

        private void FrmKhuVuc_Load(object sender, EventArgs e)
        {
            dataGridView1.DataSource = khuvucBL.DSKhuVuc();
            AnHienButton(false);
        }

        private void AnHienButton(bool flag)
        {
            btnThem.Enabled = !flag;
            btnSua.Enabled = !flag;
            btnXoa.Enabled = !flag;
            btnLuu.Enabled = flag;
            btnHuy.Enabled = flag;

            tbMaKV.Enabled = flag;
            tbTenKV.Enabled = flag;
            cbLoaiKV.Enabled = flag;
            dataGridView1.Enabled = !flag;
        }

        private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            int row = e.RowIndex;
            try
            {
                tbMaKV.Text = dataGridView1.Rows[row].Cells["MaKV"].Value.ToString();
                tbTenKV.Text = dataGridView1.Rows[row].Cells["TenKV"].Value.ToString();
                cbLoaiKV.Text = dataGridView1.Rows[row].Cells["LoaiKV"].Value.ToString();
            }
            catch
            {

            }
        }

        private void CapNhatText()
        {
            tbMaKV.Text = "";
            tbTenKV.Text = "";
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            AnHienButton(true);
            CapNhatText();
            tbMaKV.Text = "";
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            AnHienButton(true);
            tbMaKV.Enabled = false;
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            DataTable datatable = banBL.LayDanhSachBanKhuVuc(tbMaKV.Text);
            if (datatable.Rows.Count == 0)
            {
                if (MessageBox.Show("Bạn Có Muốn Xóa Khu Vực [" + tbTenKV.Text + "] Không?", "Quản Lý Quán Cafe", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    if (khuvucBL.XoaKhuVuc(tbMaKV.Text))
                        FrmKhuVuc_Load(sender, e);
            }
            else
            {
                MessageBox.Show("Khu Vực Này Còn Có Bàn Chưa Xóa. Không Thể Xóa Khu Vực Này.", "Quán Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

        }

        private KhuVucBO LayThongTinKhuVuc()
        {
            KhuVucBO khuvucBO = new KhuVucBO();
            khuvucBO.MaKV = int.Parse(tbMaKV.Text);
            khuvucBO.TenKV = tbTenKV.Text;
            khuvucBO.LoaiKV = int.Parse(cbLoaiKV.Text);

            return khuvucBO;
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            try
            {
                KhuVucBO khuvucBO = LayThongTinKhuVuc();
                if (khuvucBL.CheckKhuVuc(khuvucBO.MaKV))
                {
                    if (khuvucBL.SuaKhuVuc(khuvucBO))
                        FrmKhuVuc_Load(sender, e);
                }
                else
                {
                    if (khuvucBL.ThemKhuvuc(khuvucBO))
                        FrmKhuVuc_Load(sender, e);
                }
            }
            catch
            {
                MessageBox.Show("Kiểm Lại Các Thông Tin Đã Nhập.", "Quán Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            AnHienButton(false);
        }


    }
}
